La Casa de Asterión: estimación de demanda y optimización de precios de artículos de venta minorista

##  [1] "STORE_SUBGROUP_DATE_ID" "category"               "group"                 
##  [4] "TOTAL_SALES_"           "QUANTITY_"              "PRICE_"                
##  [7] "BASE_PRICE_"            "INITIAL_TICKET_PRICE_"  "COSTOS_"               
## [10] "STORE_ID"               "SUBGROUP"               "DATE_ID"               
## [13] "BRAND"                  "STORE_NAME"             "ADDRESS1"              
## [16] "ADDRESS2"               "CITY"                   "STATE"                 
## [19] "ZIP"                    "OPENDATE"               "CLOSEDATE"             
## [22] "STORE_TYPE"             "REGION"                 "DAY_OF_WEEK"

Introducción

La empresa La Casa de Asterión es una cadena de negocios minoristas de artículos para el hogar, la cual cuenta con 15 tiendas en distintas regiones de Estados Unidos. Recientemente dicha empresa ha detectado una reducción en las ganancias y buscan evaluar y mejorar su estrategia de precios para aumentar el rendimiento.

Teniendo en cuenta que la fijación de precios es un factor clave para el rendimiento de cualquier negocio. Un precio demasiado alto puede reducir el volumen de ventas, mientras que uno demasiado bajo puede disminuir el margen de ganancia, incluso si la demanda aumenta. Encontrar el punto de equilibrio adecuado requiere no solo un análisis detallado de las ventas y de la elasticidad de la demanda, sino también la consideración de factores externos como la competencia, la estacionalidad y los cambios en las preferencias de los consumidores.

Se busca comprender a fondo la relación entre sus precios, la demanda y otros factores que puedan influir en su rendimiento, con el objetivo de implementar una estrategia de precios más eficiente y orientada a resultados.

Se trabajará con información proveniente de las transacciones realizadas en 9 cadenas de negocios minoristas, entre las que se encuentra nuestro cliente La casa de Asterion, en un periodo de 3 años, donde se podrá obtener información de cada uno de los negocios y diferentes características relacionadas al producto que se vende.

Aclaración: cuando se habla de transacción no refiere al evento completo de la compra, sino a la cantidad de productos iguales dentro de una compra.

Objetivos

A lo largo de este trabajo tendremos en cuenta 2 objetivos principales:

  1. Predecir la demanda diaria de la semana siguiente a la finalización de los datos disponibles.

En base a la información prevista de las transacciones, se busca generar un modelo predictivo con el cual se pueda estimar de manera adecuada la demanda en pesos ($) para cada uno de los días en la semana posterior al fin de los datos (desde el 1/1/2024 al 7/1/2024) de los distintos subproductos, en cada una de las tiendas minoristas.

  1. Proponer soluciones para maximizar la ganancia.

Como ya se mencionó anteriormente, la cadena Casa de Asterión presentó una disminución de las ganancias en el último tiempo. Por lo que se busca identificar, para cada subgrupo de productos, el precio óptimo que maximice la ganancia, equilibrando el ingreso por unidad vendida con el volumen total de ventas y de esta manera poder revertir la situación.

Metodología

Datos

Fueron proporcionadas 6 bases de datos con distinta información relevante para la realización de este trabajo:

  • eci_transaction

Es la base de datos principal en este trabajo, en ella se encuentra información referida a las transacciones realizadas desde el 1 de enero de 2021 hasta el 31 de diciembre de 2023, en las 157 tiendas minoristas presentes en el estudio (pertenecientes a las 9 cadenas ya mencionadas). Las variables aquí presentes son:

📂 Variables
  • TRANSACTION_ID : id de la transacción

  • DATE : fecha de la transacción

  • STORE_ID : id de la tienda

  • SKU: número de referencia CCCGGSSXXX donde C es la categoría, G el grupo, S subgrupo y X es el número secuencial del producto

  • QUANTITY: cantidad de productos que se vendieron en esa transacción.

  • PRICE: precio del producto.

  • TOTAL_SALES (PRICE x QUANTITY): dinero que recibe el local en una transacción.

  • SUBGROUP: subproducto.

  • STORE_SUBGROUP_DATE_ID: es el id del subproducto en cierta tienda y en cierta fecha.


  • eci_stores

Contiene información particular de cada una de las distintas tiendas minoristas,presentando información relacionada a la ubicación y al tipo de tienda.En esta base de datos encontramos:

📂 Variables
  • STORE_ID : id de la tienda.

  • BRAND : cadena a la que pertenece la tienda.

  • STORE_NAME (generalmente formado por BRAND - CITY): nombre de la tienda.

  • ADDRESS1 y ADDRESS2: información sobre la dirección de la tienda.

  • CITY: ciudad de la tienda.

  • STATE : estado de la tienda.

  • ZIP : código postal de la tienda.

  • OPENDATE y CLOSEDATE : fecha de inicio y de cierre de la tienda.

  • STORE_TYPE: tipo de tienda.

  • REGION: región de la tienda.


  • eci_stores_cluster

Este archivo contiene información de las tiendas minoristas, repitiendo las variables STORE_ID, BRAND y STORE_NAME, y agrega una variable que agrupa las tiendas por zona o región:

📂 Variables
  • STORE_ID : id de la tienda.

  • BRAND : cadena a la que pertenece la tienda.

  • STORE_NAME (generalmente formado por BRAND - CITY): nombre de la tienda.

  • CLUSTER: zona o región de la tienda.


  • eci_product_master

Contiene información más específica de los productos como el nombre, el precio inicial, el precio sugerido por el fabricante, los costos del mismo, entre otras:

📂 Variables
  • SKU: número de referencia CCCGGSSXXX donde C es la categoría, G el grupo, S subgrupo y X es el número secuencial del producto

  • PRODUCT_NAME: nombre del producto.

  • CATEGORY: categoría del producto.

  • GROUP: grupo del producto.

  • SUBGROUP: subproducto.

  • BRAND: cadena a la que pertenece la tienda.

  • base_price: precio al que el negocio puso en venta al producto en primera instancia.

  • initial_ticket_price: precio del producto sugerido por el fabricante.

  • costos: costo del producto.


  • eci_product_groups

Identifica productos que han estado en precio promocional por algún motivo, contiene las siguientes variables:

📂 Variables
  • SKU: número de referencia CCCGGSSXXX donde C es la categoría, G el grupo, S subgrupo y X es el número secuencial del producto

  • PRODUCT_NAME: nombre del producto.

  • price_group_id: id de la promoción.

  • price_group_name: nombre completo de la promoción.

  • group_type: tipo de promoción.


  • eci_customer_data

Contiene información de 801923 clientes, identificando datos personales de los mismos e identificando a los que son socios de dichas cadenas:

📂 Variables
  • client_id: id del cliente.

  • phone_number: número del cliente.

  • email_address: dirección de email del cliente.

  • city: ciudad de residencia del cliente.

  • state: estado de residencia del cliente.

  • zip_code: codigo postal del lugar de residencia del cliente.

  • education_level: nivel de educación del cliente.

  • occupation: ocupación del cliente.

  • loyalty_member: identifica si el cliente es socio o no de la cadena.

  • loyalty_number: número de socio del cliente en caso de serlo.

  • loyalty_points: puntos de membresía del cliente socio.

Manejo de los datos

Antes de iniciar el análisis, fue necesario realizar una inspección exhaustiva de los datos. Este proceso permitió identificar aspectos relevantes vinculados al preprocesamiento, tales como la detección de valores atípicos, la presencia de datos faltantes y otras cuestiones que requerían tratamiento previo. Dichas cuestiones se enuncian a continuación:

  • Base de clientes (eci_customer_data)

Al analizar las variables disponibles en esta base, quedó evidenciado que no hay una variable que conecte la información aquí disponible con el resto de las bases. Es decir, se cuenta con la información de los clientes, pero no es posible identificar en que tienda compra cada uno, o que transacción realiza cada uno. Por este motivo no se utilizará esta información, al menos en este primer análisis.

  • Outliers

Observando las variables cuantitativas de las bases de datos que se usarán inicialmente no se detectaron valores atípicos.

(Insertamos tabla con quartiles, minimo, media y maximo?)

  • Valores faltantes

Se realizó una inspección por cada una de las variables de interés y en la base de datos eci_transaction se encontraron valores faltantes en la variable QUANTITY, la cual como mencionamos anteriormente puede calcularse como TOTAL_SALES/PRICE, de esta manera se pudo reconstruir el dato e imputar todos los valores faltantes de dicha variable.

En la base de datos eci_stores, hay datos faltantes en las variables ADDRESS2, CLOSEDATE y STORE_TYPE. Para las variables ADDRESS2 y CLOSEDATE puede que esto no sea un error en sí, sino que no esten los datos debido a que la tienda no tiene una segunda dirección o porque todavía no cerró respectivamente. Para la variable STORE_TYPE encontramos 2 datos faltantes, en los locales QuickBuy - Columbia y MarketExpress Lakewood Uptown, los cuales fueron reemplazados por el valor Unknown, ya que no es posible saber de que tipo de tienda se trata.

  • Datos del subproducto “Basketball”

Al revisar la base de transacciones (eci_transaction) se identificó que no existen registros asociados al subproducto “Basketball”, a pesar de que este se encuentra incluido en la base de productos (eci_product_master) y forma parte de los subproductos a predecir en el primer objetivo. Una posible explicación es que los SKU correspondientes a los subproductos de las categorías “Basketball” y “Baseball” presentan coincidencias en su codificación (por ejemplo, SPOTEBA001), lo que podría haber generado un error en el proceso de carga de datos y derivado en la ausencia de registros para “Basketball”.

Una alternativa para solucionar este problema fue realizar el supuesto de que la demanda de ambos subproductos era similar, y en base a esto realizar las correspondientes predicciones. Como no se cuenta con la información de la demanda, ya que no podemos identificarlos entre las transacciones, podemos evidenciar las similitudes en las variables base_price, initial_ticket_price y costos:

Promedios de precios y costos por Subgrupo (Baseball vs Basketball)
subgroup base_price_avg initial_ticket_price_avg costos_avg
Baseball 91.95 109.11 54.75
Basketball 94.03 114.60 51.44

Se observan similitudes tanto en los precios iniciales promedio, como en los costos promedios para los productos de Basketball y Baseball.

Desarrollo

Objetivo 1 - Estimación de demanda

Para el desarrollo del Objetivo 1, se aplicarán técnicas de Machine Learning con el propósito de entrenar los datos y estimar la demanda de los distintos subproductos. Asimismo, se llevará a cabo un procedimiento de estimación de precios correspondiente a la semana de referencia para la generación de pronósticos. Estos valores estimados se incorporarán como variables explicativas en el modelo, con el objetivo de predecir de manera adecuada la demanda en la semana posterior al fin de los datos.

Preprocesamiento de los datos - Objetivo 1

Para la preparación de los datos, se realizaron diversos procesos de depuración y combinación de las bases disponibles, con el fin de obtener un conjunto único que permitiera entrenar el modelo de predicción de la demanda.

En primer lugar, a partir de la base eci_stores se identificaron y excluyeron aquellas tiendas que habían cerrado antes de la semana del 1 al 7 de enero de 2024, ya que no tendría sentido estimar demanda para locales que ya no se encontraban operativos.

Posteriormente se combinaron las bases eci_stores y eci_product_master con la base eci_transactions. De esta forma, cada transacción no solo contiene información sobre la venta realizada, sino también el nombre y la categoría del producto, la tienda donde se comercializó y su región, la franquicia a la que pertenece, entre otras características.

Sobre esta base consolidada, se generaron 3 nuevas variables temporales a partir de la columna DATE, extrayendo el día, mes y año de cada transacción.

Finalmente, las transacciones se agruparon por día, por subproducto y por tienda (STORE_SUBGROUP_DATE_ID), con el propósito de entrenar los datos de esa manera y asi poder cumplir el objetivo de predecir la demanda desde el 1/1/2024 al 7/1/2024 de los distintos subproductos, en cada una de las tiendas minoristas. También, como dato adicional, esto hace que se reduzca el costo computacional que conlleva entrenar los datos, debido a la reduccion de filas en la base que este agrupamiento implica, pasando de trabajar con 19.004.759 de datos a una base final con 5.137.958 de datos.

En síntesis, el proceso de preparación de datos permitió pasar de múltiples bases dispersas a un único conjunto de datos estructurado, listo para ser utilizado en el entrenamiento de los modelos predictivos.

Análisis descriptivo - Objetivo 1

Al querer estimar la demanda (TOTAL_SALES) de manera adecuada, se plantea el análisis descriptivo buscando evidenciar que variables entre las que se encuentran disponibles en nuestras bases pueden influir en el comportamiento de la variable respuesta mencionada.

Se cuenta con información de articulos pertenecientes a 73 subproductos distintos, e inicialmente se quiere evidenciar si hay diferencias en la demanda para los distintos subproductos.

## # A tibble: 2 × 3
##   es_top total_ventas_2   pct
##   <lgl>           <dbl> <dbl>
## 1 FALSE     1067927710.  57.7
## 2 TRUE       782554966.  42.3

Claramente se observa que hay 9 subproductos que generaron mucha mayor demanda que el resto, estos productos son Headphones, Speakers, Wearables, Desktops, Smartphones, Home Audio, Tablets, Accesories y Laptops; acumulando un 42% de la demanda total.

Estos artículos tienen características muy similares, todos ellos corresponden a productos electrónicos vinculados principalmente a la informática, telecomunicaciones y entretenimiento audiovisual.

Otra variable que puede influir en la demanda de cada subproducto es la fecha en la que se produjo la transacción, para esto se mostrará la evolución de la demanda a través de los meses en los 3 años que abarca este estudio, y complementariamente mostraremos la demanda por día de la semana.

3 encuentran picos de ventas entre abril y mayo de 2022

otros 3 encuentran picos en julio de 2022

Se procede a analizar la demanda en las distintas regiones geográficas en las cuales pertenecen estas tiendas:

Se observa que los estados con mayor demanda monetaria se encuentran en la zona de la costa este de Estados Unidos, concentrandose en los estados de Nueva York, Florida, Georgia y Carolina del Sur. Pero este analisis inicial no necesariamente brinda una evidencia con respecto a que dichos estados influyen en las ventas de las tiendas, debido a que hay distinta cantidad de tiendas en cada uno de estos. A continuación para tratar este problema, se vuelve a realizar este gráfico pero calculando la demanda promedio de cada uno de estos estados:

Al realizar esta modificación, el panorama ya no es el mismo y se puede observar que los estados que mayor demanda promedio tienen se ubican en el suroeste y son los estados de Nuevo México y Arizona (contando con 2 y 5 tiendas respectivamente). Otra particularidad que no se evidenciaba en el otro gráfico, es que los estados con menor demanda promedio se encuentran todos en la región noroeste del país, lo que nos lleva a pensar que puede que esa sea una zona con menor consumo.

Se puede apreciar con claridad que las tiendas de tipo Street y Mall son las que mayores demanda presentan, con la particularidad que existen las mismas cantidades de tiendas de estos tipos (44 cada uno), y sin embargo las de tipo Street tuvieron una demanda de $48.194.937 mayor.

Al analizar los gráficos, se observa de manera lógica que una mayor cantidad de tiendas se asocia con un incremento en la demanda.

Se evidencia que la marca Essentials Plus es la que mayor demanda presenta, siendo también la marca con mayor cantidad de tiendas.

Técnicas estadísticas - Objetivo 1

Resultados - Objetivo 1

Objetivo 2 - Optimización de precios

bla bla bla

Preprocesamiento de los datos - Objetivo 2

calculo de la ganancia y bla bla bla

Análisis descriptivo - Objetivo 2

Técnicas estadísticas - Objetivo 2

Resultados - Objetivo 2

Resultados generales y conclusiones